/*
 * @lc app=leetcode.cn id=45 lang=java
 *
 * [45] 跳跃游戏 II
 */

// @lc code=start
class Solution {
    public int jump(int[] nums) {
        int res=0;
        int curCover=0;//当前步数最大覆盖范围
        int nextCover=0;//下一步最大覆盖范围
        for(int i=0;i<nums.length;i++){
            nextCover=Math.max(i+nums[i], nextCover);//更新下一步最大覆盖范围
            //当走到当前步数最大覆盖范围时
            if(i==curCover){
                if(i!=nums.length-1){//如果没有到最后位置
                    res++;
                    curCover=nextCover;
                    if(nextCover>=nums.length-1) break;
                }else{
                    break;
                }
            }
        }
        return res;
    }
}
// @lc code=end

